package br.com.sgpv2.controler;

import java.math.BigDecimal;
import java.util.List;

import org.springframework.beans.support.PagedListHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;

import com.google.common.base.Strings;

@Controller
public class SGPController {
	
	protected static final String PAGINACAO_AVANCAR = "avancar";
	protected static final int PAGINACAO_QTD_REGISTRO_POR_PAGINA = 5;
	
	private PagedListHolder pagedListHolder;
	
	protected void navegarPaginacao(String acao, Model model) {		
		if (PAGINACAO_AVANCAR.equalsIgnoreCase(acao)) {
			pagedListHolder.nextPage();
		} else {
			pagedListHolder.previousPage();
		}
		model.addAttribute("isPrimeiraPagina", pagedListHolder.isFirstPage());
		model.addAttribute("isUltimaPagina", pagedListHolder.isLastPage());
		model.addAttribute("exibirPaginacao", true);
	}
	
	protected void configurarPaginacao(List lista, Model model) {
		pagedListHolder = new PagedListHolder(lista);
		pagedListHolder.setPageSize(PAGINACAO_QTD_REGISTRO_POR_PAGINA);
		
		model.addAttribute("isPrimeiraPagina", true);
		model.addAttribute("exibirPaginacao", lista != null && lista.size() > PAGINACAO_QTD_REGISTRO_POR_PAGINA);
	}

	public PagedListHolder getPagedListHolder() {
		return pagedListHolder;
	}

	protected Double transformStringToDouble(String valor) {
		Double retorno = null;
		if (!Strings.isNullOrEmpty(valor)) {
			valor = valor.replace(".", "");
			valor = valor.replace(",", ".");
			retorno = Double.parseDouble(valor);
		}
		return retorno;
	}
	
	protected BigDecimal transformStringToBigDecimal(String valor) {
		BigDecimal retorno = null;
		if (!Strings.isNullOrEmpty(valor)) {
			valor = valor.replace(".", "");
			valor = valor.replace(",", ".");
			retorno = new BigDecimal(valor);
		}
		return retorno;
	}
	
}
